<?php
/**
 * Создает директории и файлы для нового модуля в системе.
 *
 *
 * @author   nrnwest@gmail.com
 */
class Arm_Module_Builder_Files
{

    /**
     * Корневая директория с шаблонами.
     *
     * @var string
     */
    private $_dirTemplatesRoot = null;

    /**
     * Масив замен.
     *
     * @var array
     */
    private $_arrayReplace = array();

    /**
     * Установка, проверка имени нового модуля.
     *
     * @param string $module
     */
    public function __construct ($module)
    {       
        $module      = strtolower($module);
        $ucModule    = ucfirst($module);
        $upperModule = strtoupper($module);        
        $this->_dirTemplatesRoot = dirname(__FILE__) . '/Files/_templates/';
        $this->_arrayReplace = array('{module}' => $module ,
                                     '{Module}' => $ucModule,
                                     '{MODULE}' => $upperModule);
    }

    /**
     * Создания файловой структуры модуля.
     *
     * @return void
     */
    public function create ()
    {
        // создаем директорию в application
        $builder = new Arm_File_BuilderWithTemplates(
        $this->_dirTemplatesRoot . 'application', Arm_Core::getPathApplication(),
        $this->_arrayReplace);
        $builder->run();
        // создаем директорию в public
        $builder = new Arm_File_BuilderWithTemplates(
        $this->_dirTemplatesRoot . 'public', Arm_Core::getPathPublicHtml(),
        $this->_arrayReplace);
        $builder->run();
        // создаем директорию в тестах
        $builder = new Arm_File_BuilderWithTemplates(
        $this->_dirTemplatesRoot . 'tests', Arm_Core::getPathTests(), $this->_arrayReplace);
        $builder->run();
        return;
    }

}

